package com.linxuan.reggie.service.impl;

import com.linxuan.reggie.service.MailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;

/**
 * 因为要注入JavaMailSender对象，所以将其也注册为Bean
 */
@Service
public class MailServiceImpl implements MailService {

    // JavaMailSender 在Mail 自动配置类 MailSenderAutoConfiguration 中已经导入，这里直接注入使用即可
    @Autowired
    private JavaMailSender javaMailSender;

    // 把yml配置的邮箱号赋值到from
    @Value("${spring.mail.username}")
    private String from;

    /**
     * 发送简单邮件
     *
     * @param to      邮件接收人
     * @param subject 邮件主题
     * @param text    邮件内容
     */
    public void sendSimpleMail(String to, String subject, String text) {
        // 简单邮件直接构建一个 SimpleMailMessage 对象进行配置并发送即可，不包括附件、图片等别的
        SimpleMailMessage simpMsg = new SimpleMailMessage();
        // 配置邮件发送者
        simpMsg.setFrom(from);
        // 配置邮件收件人
        simpMsg.setTo(to);
        // 配置邮件主题
        simpMsg.setSubject(subject);
        // 配置邮件内容
        simpMsg.setText(text);
        // 发送邮件
        javaMailSender.send(simpMsg);
    }
}
